package com.invernadero.invernaderotesis.Modelo.Elementos;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;



public class Conversion
{

	/***
	 * 
	 * @param fecha: Fecha en string con la forma "yyyy-MM-dd" que se convertira al tipo de datos Date
	 * @return Fecha en un formato valido
	 */
	
	public Date ConvertirFecha(String fecha, int uno)
	{
		Date result = null;
		
		//SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd"); //ano-mes-dia
		SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); //ano-mes-dia
		  
		dateFormat.setLenient(false);  
		  
		try
		{  
			result = dateFormat.parse(fecha.trim());  
		}  
		catch (ParseException pe)
		{  
			pe.printStackTrace();
		}
		catch (Exception pe)
		{  
			result = null;
		}
		
			
		return result;
	} // ConvertirFecha
	
	/***
	 * 
	 * @param fecha: Fecha en string con la forma "yyyy-MM-dd" que se convertira al tipo de datos Date
	 * @return Fecha en un formato valido
	 */
	
	public Date ConvertirFecha(String fecha)
	{
		Date result = null;
		
		SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm"); //ano-mes-dia
		//SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); //ano-mes-dia
		  
		dateFormat.setLenient(false);  
		  
		try
		{  
			result = dateFormat.parse(fecha.trim());  
		}  
		catch (ParseException pe)
		{  
			pe.printStackTrace();
		}
		catch (Exception pe)
		{  
			result = null;
		}
		
			
		return result;
	} // ConvertirFecha

	/***
	 * 
	 * @param fecha
	 * @return Recibe una fecha y la retorna en formato string con la forma "yyyy-MM-dd-hh-mm"
	 */
	public String ConvertirFecha(Date fecha, int uno)
	{
		if (fecha == null)
			return null;
		
		Calendar calendario = Calendar.getInstance();
		
		try
		{
			calendario.setTime(fecha);
		} catch (Exception e) {
			return null;
		}

		Integer dia    = calendario.get(Calendar.DAY_OF_MONTH);
		Integer mes    = calendario.get(Calendar.MONTH) + 1;
		Integer anio   = calendario.get(Calendar.YEAR);
		/*Integer hora   = calendario.get(Calendar.HOUR);
		Integer minuto = calendario.get(Calendar.MINUTE);
		Integer dia    = fecha.getDay();
		Integer mes    = fecha.getMonth();
		Integer anio   = fecha.getYear();*/


		return  (dia.toString().length() == 1 ? "0" + dia.toString() : dia)
				+ "/"
				+ (mes.toString().length() == 1 ? "0" + mes.toString() : mes)
				+ "/"
				+ anio
				+ " "; 
	
						
		
	} // ConvertirFecha
	/***
	 * 
	 * @param fecha
	 * @return Recibe una fecha y la retorna en formato string con la forma "yyyy-MM-dd-hh-mm"
	 */
	public String ConvertirFecha(Date fecha)
	{
		if (fecha == null)
			return null;
		
		Calendar calendario = Calendar.getInstance();
		
		try
		{
			calendario.setTime(fecha);
		} catch (Exception e) {
			return null;
		}

		Integer dia    = calendario.get(Calendar.DAY_OF_MONTH);
		Integer mes    = calendario.get(Calendar.MONTH) + 1;
		Integer anio   = calendario.get(Calendar.YEAR);
		Integer hora   = calendario.get(Calendar.HOUR);
		Integer minuto = calendario.get(Calendar.MINUTE);
		/*Integer dia    = fecha.getDay();
		Integer mes    = fecha.getMonth();
		Integer anio   = fecha.getYear();
		Integer hora   = fecha.getHours();
		Integer minuto = fecha.getMinutes();*/

		return  + anio
				+ "-"
				+ (mes.toString().length() == 1 ? "0" + mes.toString() : mes)
				+ "-"
				+ (dia.toString().length() == 1 ? "0" + dia.toString() : dia)
				+ " " 
				+ (hora.toString().length() == 1 ? "0" + hora.toString() : hora)
				+ ":"
				+ (minuto.toString().length() == 1 ? "0" + minuto.toString() : minuto);
						
		
	} // ConvertirFecha
	
	/**
	 * Obtiene una cadena de la fecha actual en la forma yyyy-MM-dd
	 * @return
	 */
	public String FechaActual ()
	{
		Calendar calendar = Calendar.getInstance();
		
		Integer dia = calendar.get(Calendar.DAY_OF_MONTH);
		Integer mes = calendar.get(Calendar.MONTH) + 1;
		Integer anio = calendar.get(Calendar.YEAR);
		Integer hora   = calendar.get(Calendar.HOUR);
		Integer minuto = calendar.get(Calendar.MINUTE);
		
		return  + anio
				+ "-"
				+ (mes.toString().length() == 1 ? "0" + mes.toString() : mes)
				+ "-"
				+ (dia.toString().length() == 1 ? "0" + dia.toString() : dia)
				+ " " 
				+ (hora.toString().length() == 1 ? "0" + hora.toString() : hora)
				+ ":"
				+ (minuto.toString().length() == 1 ? "0" + minuto.toString() : minuto);

	} // FechaActual

} // class
